//
//  main.m
//  课堂代码Two
//
//  Created by dllo on 16/7/11.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Province.h"
#import "City.h"
#import "Distric.h"
#import "TimeCity.h"
int main(int argc, const char * argv[]) {
      @autoreleasepool {
            NSString *path = @"/Users/dllo/Desktop/Province-City-zone/Province-City-zone/area.txt";
            NSString *sourceString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
            NSArray *allArray = [sourceString componentsSeparatedByString:@"\n"];
            NSMutableArray *allProvinceArray = [NSMutableArray array];
#if 0
            for (NSString *area in allArray) {
                  if (![area hasPrefix:@" "]) {
                             NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
                        NSMutableArray *cityArr = [NSMutableArray array];
                        [proDic setObject:area forKey:@"provinceName"];
                        [proDic setObject:cityArr forKey:@"cityGroup"];
                        [allProvinceArray addObject:proDic];
                  } else if (![area hasPrefix:@"   "]) {
                         NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
                        NSMutableArray *districArr = [NSMutableArray array];
                        [cityDic setObject:area forKey:@"cityName"];
                        [cityDic setObject:districArr forKey:@"districtGroup"];
                        [[[allProvinceArray lastObject] objectForKey:@"cityGroup"] addObject:cityDic];
                  } else {
                          [[[[[allProvinceArray lastObject] objectForKey:@"cityGroup"] lastObject] objectForKey:@"districtGroup"] addObject:area];
                  }
            }
            NSLog(@"%@",allProvinceArray);
#endif
#if 0
            for (NSString *area in allArray) {
                  if (![area hasPrefix:@" "]) {
                        Province *province = [[Province alloc] initWithName:area];
                        
                        [allProvinceArray addObject:province];
                  } else if (![area hasPrefix:@"   "]) {
                        City *city = [[City alloc] initWithName:area];
                        
                        Province *province = [allProvinceArray lastObject];
                        [province.arr addObject:city];
                  } else {
                        Distric *distric = [[Distric alloc] initWithName:area];
                        Province *province = [allProvinceArray lastObject];
                        City *city = [province.arr lastObject];
                        [city.arr addObject:distric];
                        
                  }
            }
            NSLog(@"%@",allProvinceArray);
#endif
#if 0
            NSString *locationPath = @"/Users/dllo/Desktop/Province-City-zone/Province-City-zone/Location1.txt";
            NSString *source = [NSString stringWithContentsOfFile:locationPath encoding:NSUTF8StringEncoding error:nil];
            NSArray *allLocationArray = [source componentsSeparatedByString:@","];
            NSMutableArray *allCityDicArray = [NSMutableArray array];
            for (NSString *city in allLocationArray) {
                     NSArray *arrayCity = [city componentsSeparatedByString:@"|"];
                  NSMutableDictionary *cityDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:[arrayCity firstObject], @"cityName",[arrayCity lastObject], @"cityNumber", nil];
                  [allCityDicArray addObject:cityDic];
            }
             NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"cityNumber" ascending:YES];
            [allCityDicArray sortUsingDescriptors:@[sort]];
            
            NSMutableArray *fiallyArray = [NSMutableArray array];
            for (NSMutableDictionary *cityDic in allCityDicArray) {
                  NSString *cityNumber = cityDic[@"cityNumber"];
                  if ([cityNumber hasSuffix:@"0000"]) {
                           NSMutableDictionary *proDic = [NSMutableDictionary dictionaryWithDictionary:cityDic];
                           [proDic setObject:[NSMutableArray array] forKey:@"cityArray"];
                        [fiallyArray addObject:proDic];
                  } else if ([cityNumber hasSuffix:@"00"]) {
                        NSMutableArray *cityArray = [[fiallyArray lastObject] objectForKey:@"cityArray"];
                        NSMutableDictionary *dicCity = [NSMutableDictionary dictionaryWithDictionary:cityDic];
                        [dicCity setObject:[NSMutableArray array] forKey:@"districArray"];
                        [cityArray addObject:dicCity];
                  } else {
                         NSMutableDictionary *proDic = [fiallyArray lastObject];
                        NSMutableArray *cityArray = proDic[@"cityArray"];
                        NSMutableDictionary *dicCity = [cityArray lastObject];
                        NSMutableArray *districArray = dicCity[@"districArray"];
                        NSMutableDictionary *districDic = [NSMutableDictionary dictionaryWithDictionary:cityDic];
                        [districArray addObject:districDic];
                  }
            }
            NSLog(@"%@",fiallyArray);
#endif
              NSString *locationPath = @"/Users/dllo/Downloads/Province-City-zone 2/Province-City-zone/Location1.txt";
            NSString *source = [NSString stringWithContentsOfFile:locationPath encoding:NSUTF8StringEncoding error:nil];
            NSArray *allLocationArray = [source componentsSeparatedByString:@","];
            NSMutableArray *allCityDicArray = [NSMutableArray array];
            for (NSString *cityString in allLocationArray) {
                  NSArray *city = [cityString componentsSeparatedByString:@"|"];
                   TimeCity *timeCity = [[TimeCity alloc] initWithName:[city firstObject] cityNumber:[city lastObject]];
                  [allCityDicArray addObject:timeCity];
            }
             NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"cityNumber" ascending:YES];
            [allCityDicArray sortUsingDescriptors:@[sortDescriptor]];
              NSMutableArray *finalArray = [NSMutableArray array];
            for (TimeCity *timeCity in allCityDicArray) {
                  if ([timeCity.cityNumber hasSuffix:@"0000"]) {
                        Province *pro = [Province districWithTimeCity:timeCity];
                        [finalArray addObject:pro];
                  } else if ([timeCity.cityNumber hasSuffix:@"00"]) {
                        Province *pro = [finalArray lastObject];
                        City *city = [City districWithTimeCity:timeCity];
                        [pro.arr addObject:city];
                  } else {
                        Province *pro = [finalArray lastObject];
                        City *city = [pro.arr lastObject];
                        Distric *distrc = [Distric districWithTimeCity:timeCity];
                        [city.arr addObject:distrc];
                  }
            }
            NSLog(@"%@",finalArray);
            
            
            
      }
      return 0;
}
